package models;

import javax.persistence.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Objects;

@Entity
@Table(name = "t_BerthingSchedule")
public class BerthingSchedule_T_Entity implements Serializable{
    private static final long serialVersionUID = 1L;

    private int fdRowId;
    private int fdApplyId;
    private String fdShipName;
    private BigDecimal fdPlanWeight;
    private String fdPlanStatus;
    private String fdBerthOrder;
    private String fdCreateDate;
    private String fdSubmitDate;
    private String fdAuditDate;
    private String fdDepartDate;
    private String fdTransFileDate;
    private String fdBatchNo;
    private String fdOrderNo;
    private String fdAgent;
    private String fdSubmitter;
    private String fdAuditor;
    private String fdTransFiler;


    @Id
    @Column(name = "fd_RowId", nullable = false)
    public int getFdRowId() {
        return fdRowId;
    }

    public void setFdRowId(int fdRowId) {
        this.fdRowId = fdRowId;
    }

    @Id
    @Column(name = "fd_ApplyId", nullable = false)
    public int getFdApplyId() {
        return fdApplyId;
    }

    public void setFdApplyId(int fdApplyId) {
        this.fdApplyId = fdApplyId;
    }

    @Id
    @Column(name = "fd_ShipName", nullable = true, length = 255)
    public String getFdShipName() {
        return fdShipName;
    }

    public void setFdShipName(String fdShipName) {
        this.fdShipName = fdShipName;
    }

    @Id
    @Column(name = "fd_PlanWeight", nullable = true, precision = 2)
    public BigDecimal getFdPlanWeight() {
        return fdPlanWeight;
    }

    public void setFdPlanWeight(BigDecimal fdPlanWeight) {
        this.fdPlanWeight = fdPlanWeight;
    }

    @Id
    @Column(name = "fd_PlanStatus", nullable = false, length = 50)
    public String getFdPlanStatus() {
        return fdPlanStatus;
    }

    public void setFdPlanStatus(String fdPlanStatus) {
        this.fdPlanStatus = fdPlanStatus;
    }

    @Id
    @Column(name = "fd_BerthOrder", nullable = false, length = 50)
    public String getFdBerthOrder() {
        return fdBerthOrder;
    }

    public void setFdBerthOrder(String fdBerthOrder) {
        this.fdBerthOrder = fdBerthOrder;
    }


    @Id
    @Column(name = "fd_CreateDate", nullable = false, length = 50)
    public String getFdCreateDate() {
        return fdCreateDate;
    }

    public void setFdCreateDate(String fdCreateDate) {
        this.fdCreateDate = fdCreateDate;
    }

    @Id
    @Column(name = "fd_SubmitDate", nullable = true, length = 50)
    public String getFdSubmitDate() {
        return fdSubmitDate;
    }

    public void setFdSubmitDate(String fdSubmitDate) {
        this.fdSubmitDate = fdSubmitDate;
    }

    @Id
    @Column(name = "fd_AuditDate", nullable = true, length = 50)
    public String getFdAuditDate() {
        return fdAuditDate;
    }

    public void setFdAuditDate(String fdAuditDate) {
        this.fdAuditDate = fdAuditDate;
    }

    @Id
    @Column(name = "fd_DepartDate", nullable = true, length = 50)
    public String getFdDepartDate() {
        return fdDepartDate;
    }

    public void setFdDepartDate(String fdDepartDate) {
        this.fdDepartDate = fdDepartDate;
    }

    @Id
    @Column(name = "fd_TransFileDate", nullable = true, length = 50)
    public String getFdTransFileDate() {
        return fdTransFileDate;
    }

    public void setFdTransFileDate(String fdTransFileDate) {
        this.fdTransFileDate = fdTransFileDate;
    }

    @Id
    @Column(name = "fd_BatchNo", nullable = true, length = 255)
    public String getFdBatchNo() {
        return fdBatchNo;
    }

    public void setFdBatchNo(String fdBatchNo) {
        this.fdBatchNo = fdBatchNo;
    }

    @Id
    @Column(name = "fd_OrderNo", nullable = true, length = 255)
    public String getFdOrderNo() {
        return fdOrderNo;
    }

    public void setFdOrderNo(String fdOrderNo) {
        this.fdOrderNo = fdOrderNo;
    }

    @Id
    @Column(name = "fd_Agent", nullable = true, length = 255)
    public String getFdAgent() {
        return fdAgent;
    }

    public void setFdAgent(String fdAgent) {
        this.fdAgent = fdAgent;
    }

    @Id
    @Column(name = "fd_Submitter", nullable = true, length = 50)
    public String getFdSubmitter() {
        return fdSubmitter;
    }

    public void setFdSubmitter(String fdSubmitter) {
        this.fdSubmitter = fdSubmitter;
    }

    @Id
    @Column(name = "fd_Auditor", nullable = true, length = 255)
    public String getFdAuditor() {
        return fdAuditor;
    }

    public void setFdAuditor(String fdAuditor) {
        this.fdAuditor = fdAuditor;
    }

    @Id
    @Column(name = "fd_TransFiler", nullable = true, length = 255)
    public String getFdTransFiler() {
        return fdTransFiler;
    }

    public void setFdTransFiler(String fdTransFiler) {
        this.fdTransFiler = fdTransFiler;
    }



    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        BerthingSchedule_T_Entity that = (BerthingSchedule_T_Entity) o;
        return fdRowId == that.fdRowId &&
                fdApplyId == that.fdApplyId &&
                Objects.equals(fdShipName, that.fdShipName) &&
                Objects.equals(fdPlanWeight, that.fdPlanWeight) &&
                Objects.equals(fdSubmitter, that.fdSubmitter) &&
                Objects.equals(fdPlanStatus, that.fdPlanStatus) &&
                Objects.equals(fdCreateDate, that.fdCreateDate) &&
                Objects.equals(fdSubmitDate, that.fdSubmitDate) &&
                Objects.equals(fdAuditDate, that.fdAuditDate) &&
                Objects.equals(fdDepartDate, that.fdDepartDate) &&
                Objects.equals(fdTransFileDate, that.fdTransFileDate) &&
                Objects.equals(fdBatchNo, that.fdBatchNo) &&
                Objects.equals(fdOrderNo, that.fdOrderNo);
    }

    @Override
    public int hashCode() {

        return Objects.hash(fdRowId, fdApplyId, fdShipName, fdPlanWeight, fdSubmitter, fdPlanStatus, fdCreateDate, fdSubmitDate, fdAuditDate, fdDepartDate, fdTransFileDate, fdBatchNo, fdOrderNo);
    }
}
